Dcokerfile创建镜像运行Spring Boot项目

新建一个spring boot项目

初始化一个Spring Boot项目,就新建一个eureka注册中心好了,以此举例说明(源码位置:点此跳转) 打包doe-eurka项目成jar包,没改任何配置的话打出的jar包名是doe-eureka-0.0.1-SNAPSHOT.jar 将此jar包放到服务器中与Dockefile文件目录平级

Dockerfile文件中的内容如下:

FROM anapsix/alpine-java
VOLUME /tmp
ADD doe-eureka-0.0.1-SNAPSHOT.jar app-eureka.jar
RUN bash -c 'touch /app-eureka.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app-eureka.jar"]
EXPOSE 12111
参数说明:
  • FROM anapsix/alpine-java:基础镜像是anapsix/alpine-java,是Docker Hub上的java镜像,体积很小,项目是以这个java镜像为基础运行的
  • VOLUME /tmp:创建/tmp目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录
  • ADD doe-eureka-0.0.1-SNAPSHOT.jar app-eureka.jar:将当前目录的doe-eureka-0.0.1-SNAPSHOT.jar包复制到/app-eureka.jar
  • RUN bash -c 'touch /app-eureka.jar':touch已有文件,更新一下复制进来jar包的时间信息
  • ENTRYPOINT ···:表示容器运行要执行的命令
  • EXPOSE 12111:开放出12111端口

更多参数详情查看官方文档

创建镜像

用Dockerfile创建一个镜像取名为doe/eureka版本为v1。

[root@Charlie docker]# docker build -t doe/eureka:v1 .
···
Successfully built 9d9cbec08724
[root@Charlie docker]# docker images
REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
doe/eureka                       v1                  9d9cbec08724        15 seconds ago      218 MB

运行容器

映射镜像端口12111到宿主的8212端口,将容器命名为doe_eureka

[root@vmyy3syb docker]# docker run -d -p 8212:12111 --name doe_eureka doe/eureka:v1
16ae19df0e9ce068be681e08b8a9536c1d8196535ea7033a3e0da9ec2f116a37

查看效果

运行的宿主机IP:8212即可查看效果